home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # Start/stop port forwarding
-
-
- . /etc/system.cfg
- . /etc/colors
- . /etc/chat.pwd
- . /etc/live.cfg
-
- [ "$ENAMSQ" = y ] || exit 0
-
- fn2() { ps |sed -n '/ rc_pfwd/P'; }
- stp() {
- echo -n "Disabling port forwarding... "
- ipportfw -C
- ipautofw -F
- = $?
- }
- str() {
- echo -n "Enabling port forwarding... "
- IPADDR="$IPADDR0"
- if [ "$ROUTER" = dialup -o "$ROUTER" = leased -o "$USEPPP0" = y ]; then
- if [ "`ifconfig | grep ppp0`" ]; then
- set -- `ifconfig ppp0 | sed -n /inet/P | sed 's/i[^:]*://;s/P.*//'`
- IPADDR="$1"
- else
- = 0 "Done $CC Delayed"
- fork rc_pfwd delayed
- exit 1
- fi
- fi
- for i in `cat /etc/portfw.cfg | sed '/^$/d;s/\#.*//;s/$/\ /'`; do
- set -- `echo "$i" | sed s/,/\ /g`
- [ "$1" ] || continue
- if [ "`echo "$3" |sed -n '/-/P'`" ]; then
- TMP=`echo "$3" |sed 's/-//'`
- ipautofw -A -r $1 $2 $TMP -h $4
- else
- [ "$1" = udp ] && TMP=u || TMP=t
- ipportfw -A "-$TMP" "${IPADDR}/$2" -R "${4}/$3"
- fi
- done
- = 0 "Done"
- }
-
- case "$1" in
- delayed) sleep 30; str;;
- start) str;;
- stop) stp;;
- restart|newip) stp;str;;
- status) ipportfw -L;;
- esac
-
-